package stack_opt

import (
	"Yasuo/iface/iyasuo"
	"Yasuo/utils"
	"errors"
	"strconv"
)

// 基本操作数入栈
// 1. 碰到减号就进行0 - val
type OpdNuM struct{
	tokenValue string
}

func NewOpdNum(tv string) *OpdNuM  {
	return &OpdNuM{tokenValue:tv}
}

func (l *OpdNuM) InventedOpt(iys iyasuo.IYasuo) error {
	var (
		u *utils.Utils  // 工具函数
		err error
		fopd float64
	)

	// 初始化
	u = utils.NewUtils()

	// 1.  属性需要转换
	if fopd, err = strconv.ParseFloat(l.tokenValue, 64); err != nil {
		return errors.New("sring -> float64转换失败")
	}

	u.PushBack(iys.GetOPD(), fopd)

	iys.SetNext(iys.GetNext()+1)

	return nil
}

